The use of color images in computer systems is becoming increasingly widespread as computing power has increased and as computer users have become more sophisticated. The use of color images, however, is not limited to professionals using high-end computer systems and, instead, is quickly becoming a standard feature of personal computers as used by all levels of computer users.
With today's technology, providing realistic color imaging has numerous difficulties. Color display screens are capable of rendering a wider range of colors than can be rendered by color printers because printers are limited by the color inks and paper used in them. This discrepancy between color display screens and color printers is addressed in different ways. With the Cachet.TM. software, developed and marketed by the assignee of the present invention, two alternate techniques are used. In both, the particular printer, printer inks and paper are pre-characterized and incorporated into the system. In one method, the display screen is calibrated to accurately display the original image, and the printer, inks and paper characterizations are used to ensure the output print matches the display screen. In the second method, a previously printed image, known to print accurately, is displayed as a reference image on the computer display screen near a display of the original image. In this way, without needing the display screen to be accurately calibrated, the user can make corrections to the original image by matching its colorings to those of the reference image. The printer, inks and paper characterizations are then used to ensure that the output colorings match that of the reference image print.
Another difficulty with providing realistic color imaging on computer display screens is the considerable computing power required to manage the large amount of information which an electronic color image contains. In particular, many applications would benefit from interactive processing of the image information so that any changes made on the image are seen almost instantaneously (after the changes) on the display screen. This requires a large amount of computing power.
FIG. 1a depicts a typical in, age 101 comprised of picture elements, called pixels, arranged into rows and columns. These pixels together make up the image as displayed on a visual display screen. Each pixel of the image contains, among other information, the color information for that particular pixel.
The color information for the pixels in an image can be defined in a number of different ways. If the image is to be displayed on a typical raster scanned display screen, it is common in the art to use what is known as an RGB scheme whereby each pixel's color information is defined as having some quantity of each of the additive primary colors Red, Green and Blue. If the display screen uses a cathode ray tube (CRT) then the RGB values are converted to voltages which drive the CRT guns so that the RGB values represent the intensities of the red, green, and blue guns, respectively, of the CRT. Other representation schemes include 1) the CMYK scheme, whereby each pixel's color information is defined as having some quantity of each of the subtractive primary colors cyan, magenta and yellow, and of the color black; 2) the HSB scheme where each pixel's color information is defined in quantities of hue, saturation, and brightness; and 3) colorimetric schemes where each pixel's color information is defined by luminance and chrominance. Colorimetric mathematical means of specifying color include the CIE-LAB (or CIE-L*a*b*), the CIE-LUV, the CIE-XYZ and the CIE-xyz. CIE denotes the Commission Internationale de l'Eclairage, while the following three letters refer to the three coordinates used to define the color information. Because three-dimensional space can be defined by coordinate systems having three variables, the different mathematical means for describing color define different color spaces where each color can be considered a point in color space. FIG. 2 shows such a color space, in this case the HSB space, where the color values used to define any point in the color space shown are hue, saturation and brightness or brilliance.
In a digital computer system, to represent the color information in each pixel of an image, it is necessary to use a finite integer usually represented by a finite number of bits. For example, it is common in a digital computer system using an RGB scheme to use 8 bits for each of the three colors red, green and blue for each pixel. Shown in FIG. 1b is a representation 103 of the RGB color information for each pixel as it might be stored in some data storage medium. Using 8 bits for each of three colors for each pixel can result in 2.sup.24 (almost 17 million) different colors per pixel.
As image size or resolution or both increase so does the number of pixels to be displayed on the display screen. Increasing the number of pixels increases the amount of color information which must be kept for the entire image. Using an RGB 24-bits-per-pixel scheme with ever increasing image sizes results in greater file sizes for images which thus takes up more storage space and also takes more time when transferring images between computers or storage mediums.
Furthermore, whenever the user of an image wishes to alter or modify the color information for that image, each affected pixe's color information must be recalculated before the change can be saved or displayed on the computer display screen. Due to the large number of pixels in an image and the large amount of color information per pixel, the number of calculations needed to be made can become quite large. The large number of these calculations necessary to make changes to the color information of an image can thus considerably slow down the speed at which a computer system can alter and save or re-display on the display screen a color image. This delay to calculate and re-display on the display screen modifications to color images can quickly become unacceptable. This is especially a limitation when the user of a computer is interactively processing the color image. In interactive processing, the user makes a change and the computer acts on the change and often the user makes changes to the color image based on the results of previous changes as shown on the display. For this, a close to instantaneous display of changes on the display screen is desired (because the user will want to see the result of a current change which will determine future changes) which is made difficult when the amount of information to be processed is large.
As is well known in the art, there are processing speed and other advantages to working in one color space over another color space, depending upon the computations to be performed. For example, it is common to use the RGB scheme when the image is to be displayed on a computer video (CRT) display, while there are advantages to specifying colors in a perceptually (and substantially) uniform color space such as the CIE-LAB space when performing shifts in color cast. Transformations that convert from one color space to another are well known in the art. However, converting from one color information scheme to another color information scheme does not substantially reduce the amount of information which must be processed and kept for each pixel in an image. A reduction in the amount of color information which must be kept for each pixel is needed in order to substantially reduce the amount of digital data in an image and to substantially reduce the number of calculations which must be made whenever the user wishes to alter the color of an image. Together with this reduction of amount of color information, processing methods and apparatus are needed to handle the color information in the reduced form.
In order better to describe the invention and its relation to the prior art, the following terms are defined at the outset:
Appearance Values--Values produced by any reversible transformation of RGB. Luminance/chrominance (CIE-LAB) and hue, and saturation and brightness (FISB) are two common sets.
Brightness--That aspect of a colored stimulus relating to its intensity.
Hue--That aspect of a colored stimulus relating to its color name.
Saturation--That aspect of a colored stimulus relating to its purity or absence of contamination with white.
Chrominance--That aspect of a colored stimulus relating to its hue and saturation.
Color--The specification of a colored stimulus requiring at least three component values.
Color Space--A three-dimensional space in which each point corresponds to a color, including both luminaries and chrominance aspects. RGB forms such a space. HSB forms a set of cylindrical coordinates in color space. CIE-LAB The B-axis is the diagonal of RGB space, so that B=0 in HSB where R=G=B=0 in RGB, and B=max (the maximum value) in HSB where R, G, and B are max. The three components L*, a* and b* in the CIE-LAB space are such that equal increments in L*, a* and b* are approximately equally perceptible. Luminance L* is a non-linear transformation of brightness. The a*-b* plane is perpendicular to the L*-axis. The hue (angle) and chrominance (amplitude) are polar coordinates in the a*-b* plane. The Munsell color space has coordinates hue, value and chroma, where hue is specified in a non-mathematical way.
Colorimetric color space--A mathematical color space including the CIE-LAB (or CIE-L*a*b*), the CIE-LUV, the CIE-XYZ and the CIE-xyz. CIE denotes the Commission Internationale de l'Eclairage, while the following three letters refer to the three coordinates used to define the color space.
Colorants--Inks or dyes as used for printing. The density of colorants is approximately proportional to the quantity of ink laid down. CMYK refer to the densities of cyan, magenta, yellow, and black ink normally used in printing.
Display--In this invention, the verb "to display" is general and for example includes both displaying on a display screen and displaying (printing) on a hard copy device.
Gamut--The range of colors reproducible with a set of inks, lights, or other colorants. The gamut can be conveniently described in terms of a particular region of a color space.
Uniform color space--A color space where color differences of color points that have equal Euclidean distance between them are approximately equally perceptible. The CIE-LAB (or CIE-L*a*b*) and the CIE-LUV are uniform mathematical color spaces, while the Munsell color space is a non-mathematical uniform color space.